Перейти к основному содержимому

Управление IT-проектом

· 3 мин. чтения

Несомненно в мире множество фирм в каждой из которых принят некий обычай как проект надо делать, а для этого созданы всевозможные процессы развития проекта типа waterfallspiralRUP и тд.

Попробую изложить, как на моём опыте обычно ведётся IT-проект (CMS, CRM, intranet, custom-инфосистема) или как бы этого хотелось в идеале.

Общение с клиентом

Как правило самая важная техническая часть это узнать разделы проекта, что-бы примерно понять насколько он сложен. В остальном клиенту вешают лапшу на уши, что-бы он остался доволен переговорами и согласился на договор. Показывают как работает фирма, показывают портфолио и слеланные работы. Намечают следующую встречу, где уже более детально всё прорабатывается

Раннее проектирование

Управляющий проектом создаёт техническое задание того, что хочет клиент. 

  • Может помочь использование brain-storm методики при разговором с клиентом, запись в MindMeisterMindManagerFreemind, что-бы как можно подробней зарисовать пожелания.
  • Нельзя использовать неопределённости размера, времени, пользователей
  • Нельзя выдумывать новые понятия, не определив их заранее.

Архитектурный анализ

Что-бы понять процессы в нужной системе, проводится нормализация регистров и их соединения, т.е. того что в будующем станет таблицами БД. Делается прототипный макет экранов будующего приложения. При этом помогают UML диаграммы из MS VisioVisual paradigm , OmniGraffle.

Аналитик просматривая техническое задание составляет анализ системы с точки зрения программиста - какие части системы надо разработать, какая структура меню/модулей, какие примерно будут множества данных (на основе которых будут созданы таблицы БД), какие части уже реализованы.

Самая важная цель - сказать сколько займёт по времени проект, соответсвенно сколько он стоит. На этой стадии можно начать создавать план проекта в MS Project с учётом свободных рук.

Дизайн интерфейса

Если на анализе фирма сэкономила (как правило так и случается), то весь груз ложится на управляющего проекта, или что ещё обыкновенно - на программиста и дизайнера. Прототип интерфейсов в этом случае играет большую роль.

Часто для сайтов под ключ или для стартапов красивый дизайн пропускается, разработка сразу идёт к функциональной части.

Программирование

Если проект идёт по чёрному сценарию и программисту приходит только техническое задание без деталей и руководство настаивает на такой дешивизне, то разработку после установки платформы как правило начинают со структуры меню или авторизации пользователей.

Как правило в этой фазе приходит и запоздавший дизайн, после установки которого встаёт вопрос по безопасности и пункты ТЗ просматриваются более детально:

  • Есть ли отдельные пользователи, группы, привилегии? Надо ли их реализовывать дополнительно в платформе?
  • Особые требования к безопасности/скорости/нагрузке?

К этому моменту костяк работает и работа переходит до уникальных частей сайта, которые надо писать с нуля

Отдельные модули

При огромных БД или если проект вероятно будет развиваться в будующем, то полезно создать визуальную диаграмму, показывающую связи таблиц. Для этого используются mysql workbench , DB designerOpen Sys ArchitectDB viz

Дополнительные наработки занимают как правило 50-70% от всего времени разработки и нуждаются в хорошей отладке и документировании. Эти работы так-же сильно разнятся в техническом плане и имеют большой коэффициент риска

Отладка

На этом шаге очень полезно вести учёт прогресса мелких задач. В этом вам помогут как системы ведения баг-учётов - Bugzilla, TracMantis так и банальная таблица багов в Excel со своими статусами и приоритетами. Очень важно иметь человека проверяющего задания программиста — разделение задач в этом плане играет хорошее дело, доводя качество продукта до совершенства. При этом программист не будет чуствовать что он делает чужую работу, критикуя дизайнера — за него это сделает тестер (QA-engineer)

Версионность и документация

Если проект достаточно велик, что имеет смысл вести историю его развития, то используется SVN -система, где подобно FTP сохраняются все изменения в файлах проекта. Документирование в свою очередь делается достаточно редко